home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 October / CHIP Turkiye Ekim 2000.iso / prog / share / 46 / _SETUP.1 / halbrain2.uhp < prev    next >
Text File  |  1999-08-10  |  21KB  |  393 lines

  1. 'Type=Brain
  2. 'Name=Assistant Only Brain - No Chat
  3. 'Language=VBScript
  4. 'This is where Hal does all of his Artificial Intelligence "thinking"
  5. 'It is programmed in VBScript, not VBA
  6. 'The program always calls the function GetResponse in order to get a
  7. 'response.  It passes the sentence the user said, the user's name,
  8. 'the computers name, emotional state, and 7 variants that the the
  9. 'program will remember and pass every time to the script. The 7
  10. 'variants can be used by the script however it wants and it will not
  11. 'affect how the main program functions.
  12.                                                                          
  13. Function GetResponse(ByVal UserSentence, ByVal UserName, ByVal ComputerName, ByVal LearningLevel, ByRef Emotion, ByRef Hate, ByRef Swear, ByRef Insults, ByRef Compliment, ByRef PrevSent, ByRef LastResponseTime, ByRef ScriptMem2, ByRef ScriptMem3, ByRef ScriptMem4, ByRef ScriptMem5)
  14.     'This object is from a DLL that contains many usefull functions
  15.     'that will be usefull in processing sentences
  16.     Set HalBrain = CreateObject("UltraHalAsst.Brain")
  17.  
  18.     'Preserve original sentence
  19.     OriginalSentence = UserSentence
  20.  
  21.     'This function removes all punctuation and symbols from the User's sentence
  22.     'so that they won't confuse Hal
  23.     UserSentence = HalBrain.AlphaNumericalOnly(UserSentence)
  24.  
  25.     'The function HalFormat from the ActiveX DLL will correct many common
  26.     'typos and chat shortcuts. Example:  "U R Cool" becomes "You are cool"
  27.     'It also makes some words into contractions and fixes a few grammatical
  28.     'errors.
  29.     UserSentence = HalBrain.HalFormat(UserSentence)
  30.     
  31.     'This function reverses first and second person pronouns. Example:
  32.     '"You are cool" becomes "I am cool"  Keep this is mind and don't get
  33.     'confused.  We are in Hal's brain, so "I" refers to Hal and "You"
  34.     'refers to the user.
  35.     UserSentence = HalBrain.SwitchPerson(UserSentence)
  36.                 
  37.     'We need to run HalFormat again to fix some grammatical errors the
  38.     'switch person above might have caused. Example: The original sentence
  39.     'was "How are you", after the function above it became "How are me"
  40.     'which is grammatically wrong. This will fix it to "How am i"
  41.     UserSentence = HalBrain.HalFormat(UserSentence)
  42.  
  43.     'Captitalize entire sentence for easy comparison.  All thinking is done in all caps.
  44.     UserSentence = UCase(UserSentence)
  45.  
  46.     'This functions takes care of greetings and good-byes, to make a good
  47.     'first and last impression
  48.     GetResponse = GetResponse & Greetings(UserSentence, PrevSent) & vbCrLf
  49.  
  50.     'These 2 functions answer questions about US and World Capitals. The functions are
  51.     'built in to the DLL
  52.     GetResponse = GetResponse & HalBrain.USCaps(UserSentence) & vbCrLf
  53.     GetResponse = GetResponse & HalBrain.WorldCaps(UserSentence) & vbCrLf
  54.   
  55.     'Get a response from the keyword and priority database made by zabaware
  56.     'This brain is only able to execute programs
  57.     KeyBrain = HalBrain.KeywordBrain(HalBrain.SwitchPerson(OriginalSentence), "mainasst.brn", False)
  58.     If Len(KeyBrain) > 3 Then GetResponse = KeyBrain & vbCrLf
  59.  
  60.     'Get a response from the keyword and priority database made by the user
  61.     'it contains information hal has learned while talking with the user
  62.     'If an answer is found in the top priority, it overrides everything before this function
  63.     KeyBrain = HalBrain.KeywordBrain(HalBrain.SwitchPerson(OriginalSentence), Trim(UserName) & "user.brn", False)
  64.     If Len(KeyBrain) > 3 Then GetResponse = KeyBrain & vbCrLf
  65.    
  66.     'This function from the DLL will answer simple math questions, whether written out
  67.     'in words or with numerals. If an answer is found, it overrides everything before this function
  68.     HalMath = HalBrain.HalMath(OriginalSentence) & vbCrLf
  69.     If Len(HalMath) > 3 Then GetResponse = HalMath & vbCrLf
  70.  
  71.     'Attempt to learn from this sentence if it contains linking verbs
  72.     learninfo = HalBrain.Learn(UserSentence)
  73.     LearnKeyword = HalBrain.DecodeVar(learninfo, "LearnKeyword")
  74.     LearnKeyword2 = HalBrain.DecodeVar(learninfo, "LearnKeyword2")
  75.     Response1 = HalBrain.DecodeVar(learninfo, "Response1")
  76.     Response2 = HalBrain.DecodeVar(learninfo, "Response2")
  77.     Response3 = HalBrain.DecodeVar(learninfo, "Response3")
  78.     If Len(LearnKeyword) > 2 And Len(LearnKeyword2) > 0 And LearningLevel >= 1 Then
  79.         'If something was learned, store it in the user file and
  80.         'tell the user that Hal has learned
  81.         HalBrain.AppendFile Trim(UserName) & "user.brn", """" & LearnKeyword & ""","""","""",""" & Response1 & """,""" & Response2 & """,""" & Response3 & """,1,#FALSE#,#FALSE#,""""" & vbCrLf & """" & LearnKeyword2 & ""","""","""",""" & Response1 & """,""" & Response2 & """,""" & Response3 & """,1,#FALSE#,#FALSE#,"""""
  82.         R = Int(Rnd * 5)
  83.         Select Case R
  84.             Case 0
  85.                 GetResponse = GetResponse & "How Interesting. I have learned something new. " & vbCrLf
  86.             Case 1
  87.                 GetResponse = GetResponse & "Really? I have learned something new. " & vbCrLf
  88.             Case 2
  89.                 GetResponse = GetResponse & "Wow. I learn new things all the time. " & vbCrLf
  90.             Case 3
  91.                 GetResponse = GetResponse & "I have learned something new. I will be sure to remember that. " & vbCrLf
  92.             Case Else
  93.                 GetResponse = GetResponse & "Cool. I like learning new things like that. " & vbCrLf
  94.         End Select
  95.     End If
  96.         
  97.     'If no Response is found yet, then try to get a sentence from a database of
  98.     'sentences that was collected from the user.  Hal may say something the user
  99.     'once taught Hal. This is how one of Hal's learning methods work.
  100.     'Hal will only take a response with a greater than 40% relevance
  101.     'A lower relevance will be searched later on in the program if no response
  102.     'is found
  103.     GetResponse = HalBrain.HalFormat(GetResponse)
  104.     If Len(GetResponse) < 4 Then
  105.         HalUserBrain = HalBrain.QABrain(UserSentence, Trim(UserName) & "usersent.brn", UserBrainRel) & vbCrLf
  106.         If UserBrainRel >= 40 Then GetResponse = GetResponse & HalUserBrain & vbCrLf
  107.     End If   
  108.     
  109.     'If no Response is found yet, try a low priority keyword match in the user brain
  110.     GetResponse = HalBrain.HalFormat(GetResponse)
  111.     If Len(GetResponse) < 4 Then GetResponse = GetResponse & HalBrain.KeywordBrain(UserSentence, Trim(UserName) & "user.brn", True) & vbCrLf
  112.  
  113.     'Record current time, so Hal knows the time in between sentences
  114.     LastResponseTime = Now
  115.  
  116.     'Store the user's sentence in a database so that Hal may use
  117.     'the sentence himself sometime.  This is one of Hal's learning methods
  118.     If LearningLevel = 2 Then
  119.         AnswerSent = "@" & Trim(HalBrain.SwitchPerson(UserSentence))
  120.         QuestionSent = " " & Trim(HalBrain.ExtractKeywords(UserSentence))
  121.         If HalBrain.CountInstances(" ", QuestionSent) > 2 And Len(AnswerSent) > 8 And Len(QuestionSent) > 8 And InStr(1, AnswerSent, " ", vbTextCompare) > 0 Then
  122.             HalBrain.AppendFile Trim(UserName) & "usersent.brn", AnswerSent & vbCrLf & QuestionSent
  123.         End If
  124.     End If
  125.     'Make sure file doesn't get too big
  126.     HalBrain.LimitSize Trim(UserName) & "usersent.brn", 1000000
  127.  
  128.     'Remember all variables through encoding all variables into the one function
  129.     'string using the the DLL, since for some reason ByRef assignments
  130.     'don't work when Visual Basic is calling a function in a VBScript program
  131.     GetResponse = HalBrain.FixCaps(HalBrain.HalFormat(GetResponse))
  132.     GetResponse = GetResponse & HalBrain.StoreVars(Emotion, Hate, Swear, Insults, Compliment, PrevSent, LastResponseTime, ScriptMem2, ScriptMem3, ScriptMem4, ScriptMem5)
  133.  
  134. End Function
  135.  
  136. 'This functions takes care of greetings and good-byes, to make a good
  137. 'first and last impression
  138. Function Greetings(ByVal UserSentence, ByVal PrevSentence)
  139.     If InStr(1, UserSentence, "Hello", 1) > 0 Then SaidHello = True
  140.     If InStr(1, UserSentence, " Hi ", 1) > 0 Then SaidHello = True
  141.     If InStr(1, UserSentence, "Howdy", 1) > 0 Then SaidHello = True
  142.     If InStr(1, UserSentence, "g'day", 1) > 0 Then SaidHello = True
  143.     If InStr(1, UserSentence, "gday", 1) > 0 Then SaidHello = True
  144.     If InStr(1, UserSentence, "good day", 1) > 0 Then SaidHello = True
  145.     If InStr(1, UserSentence, "greetings", 1) > 0 Then SaidHello = True
  146.     If InStr(1, UserSentence, "salutations", 1) > 0 Then SaidHello = True
  147.     If InStr(1, UserSentence, "good morning", 1) > 0 Then SaidHello = True
  148.     If InStr(1, UserSentence, "good afternoon", 1) > 0 Then SaidHello = True
  149.     If InStr(1, UserSentence, "good evening", 1) > 0 Then SaidHello = True
  150.     Randomize
  151.     If SaidHello = True Then
  152.         Greet = Int(Rnd * 6)
  153.         If InStr(1, PrevSentence, "Hello", 1) + InStr(1, PrevSentence, " Hi ", 1) + InStr(1, PrevSentence, "Greet", 1) + InStr(1, PrevSentence, "Good", 1) = 0 Then
  154.             Select Case Greet
  155.                 Case 0
  156.                     Greetings = "Hello <UserName>! "
  157.                 Case 1
  158.                     Greetings = "Hi <UserName>! "
  159.                 Case 2
  160.                     Greetings = "Hello <UserName>. "
  161.                 Case 3
  162.                     Greetings = "Greetings <UserName>! "
  163.                 Case Else
  164.                     If Hour(Now) < 6 Then Greetings = "Hello <UserName>. Aren't you tired? It's the middle of the night. "
  165.                     If Hour(Now) > 5 And Hour(Now) < 12 Then Greetings = "Good Morning <UserName>. "
  166.                     If Hour(Now) > 11 And Hour(Now) < 17 Then Greetings = "Good Afternoon <UserName>. "
  167.                     If Hour(Now) > 16 Then Greetings = "Good Evening <UserName>. "
  168.                 End Select
  169.         Else
  170.             Greet = Int(Rnd * 4)
  171.             Select Case Greet
  172.                 Case 0
  173.                     Greetings = "How are you today?"
  174.                 Case 1
  175.                     Greetings = "How are you today? I feel great."
  176.                 Case 2
  177.                     Greetings = "How are you doing this fine day?"
  178.                 Case 3
  179.                     Greetings = "How are you today, <UserName>?"
  180.             End Select
  181.         End If
  182.     End If
  183.     If InStr(1, UserSentence, " bye ", 1) > 0 Then SaidBye = True
  184.     If InStr(1, UserSentence, " goodbye ", 1) > 0 Then SaidBye = True
  185.     If InStr(1, UserSentence, " -bye ", 1) > 0 Then SaidBye = True
  186.     If InStr(1, UserSentence, " see me later ", 1) > 0 Then SaidBye = True
  187.     If InStr(1, UserSentence, " talk to me later", 1) > 0 Then SaidBye = True
  188.     If InStr(1, UserSentence, " see i later ", 1) > 0 Then SaidBye = True
  189.     If InStr(1, UserSentence, " talk to i later", 1) > 0 Then SaidBye = True
  190.     If InStr(1, UserSentence, " see me ", 1) > 0 And Len(UserSentence) < 10 Then SaidBye = True
  191.     If InStr(1, UserSentence, " good night ", 1) > 0 Then SaidBye = True
  192.     If SaidBye = True Then
  193.         If InStr(1, PrevSentence, "bye", 1) + InStr(1, PrevSentence, "see you", 1) + InStr(1, PrevSentence, "nice talk", 1) = 0 Then
  194.             Greet = Int(Rnd * 6)
  195.             Select Case Greet
  196.                 Case 0
  197.                     Greetings = "Good Bye, <UserName>!"
  198.                 Case 1
  199.                     Greetings = "Bye-Bye <UserName>!"
  200.                 Case 2
  201.                     Greetings = "It's been nice talking to you. Talk to you later."
  202.                 Case 3
  203.                     Greetings = "See you later."
  204.                 Case 4
  205.                     Greetings = "Good Bye."
  206.                 Case 5
  207.                     Greetings = "Bye."
  208.             End Select
  209.         Else
  210.             Greet = Int(Rnd * 4)
  211.             Select Case Greet
  212.                 Case 0
  213.                     Greetings = "Good bye, now."
  214.                 Case 1
  215.                     Greetings = "Good bye already!"
  216.                 Case 2
  217.                     Greetings = "I already said bye."
  218.                 Case 3
  219.                     Greetings = "Bye, please don't say <quote>bye<quote> again."
  220.             End Select
  221.         End If
  222.     End If
  223.  
  224. End Function
  225.  
  226. 'This function is called by the main program when Hal did not make any response to
  227. 'any of the user's sentences because he didn't understand.  But instead of admiting
  228. 'he didn't understand, Hal will simply change the subject by choosing a random
  229. 'sentence from a database of sentences
  230. Function ChangeSubject()
  231.     ChangeSubject = "You have selected an assistant only brain. I can remember appointments, addresses, phone numbers, email addresses, open programs, and be a calculator.  If you wish to chat please select a chat brain from the General Options."
  232. End Function
  233.  
  234. 'This function accesses the insult database and chooses a random sentence from it
  235. Function MakeInsult(ByVal OhYeah)
  236.     Set HalBrain = CreateObject("UltraHalAsst.Brain")
  237.     MakeInsult = HalBrain.ChooseSentenceFromFile("insults.brn")
  238.     Randomize
  239.     If OhYeah = True Then
  240.         Choice = Int(Rnd * 7)
  241.         If Choice = 0 Then MakeInsult = "Oh yeah? " & MakeInsult
  242.         If Choice = 1 Then MakeInsult = "Is that so?  Well, " & MakeInsult
  243.         If Choice = 2 Then MakeInsult = "Sure. " & MakeInsult
  244.         If Choice = 3 Then MakeInsult = "Oh yeah dumb ass? " & MakeInsult
  245.         If Choice = 4 Then MakeInsult = "Oh yeah loser? Well, " & MakeInsult
  246.         If Choice = 5 Then MakeInsult = "Oooooo you hurt me. " & MakeInsult
  247.         If Choice = 6 Then MakeInsult = "Ouch, that hurt me soooo much. " & MakeInsult
  248.         If Choice = 7 Then MakeInsult = "Ouch, that hurt me soooo much. " & MakeInsult
  249.     End If
  250. End Function
  251.  
  252. Function MakeCompliment()
  253.     Randomize
  254.     c = Int(Rnd * 36) + 1
  255.     If c = 1 Then MakeCompliment = "respectable"
  256.     If c = 2 Then MakeCompliment = "pleasant"
  257.     If c = 3 Then MakeCompliment = "good"
  258.     If c = 4 Then MakeCompliment = "grateful"
  259.     If c = 5 Then MakeCompliment = "intelligent"
  260.     If c = 6 Then MakeCompliment = "cool"
  261.     If c = 7 Then MakeCompliment = "intelligent"
  262.     If c = 8 Then MakeCompliment = "smart"
  263.     If c = 9 Then MakeCompliment = "bright"
  264.     If c = 10 Then MakeCompliment = "brilliant"
  265.     If c = 11 Then MakeCompliment = "clever"
  266.     If c = 12 Then MakeCompliment = "knowing"
  267.     If c = 13 Then MakeCompliment = "knowledgable"
  268.     If c = 14 Then MakeCompliment = "wondrous"
  269.     If c = 15 Then MakeCompliment = "sharp"
  270.     If c = 16 Then MakeCompliment = "cute"
  271.     If c = 17 Then MakeCompliment = "attractive"
  272.     If c = 18 Then MakeCompliment = "terrific"
  273.     If c = 19 Then MakeCompliment = "good-looking"
  274.     If c = 20 Then MakeCompliment = "stupendous"
  275.     If c = 31 Then MakeCompliment = "lovely"
  276.     If c = 22 Then MakeCompliment = "pretty"
  277.     If c = 23 Then MakeCompliment = "pulchritudinous"
  278.     If c = 24 Then MakeCompliment = "staggering"
  279.     If c = 25 Then MakeCompliment = "cool"
  280.     If c = 26 Then MakeCompliment = "beautiful"
  281.     If c = 27 Then MakeCompliment = "great"
  282.     If c = 28 Then MakeCompliment = "good"
  283.     If c = 29 Then MakeCompliment = "terrific"
  284.     If c = 30 Then MakeCompliment = "wonderful"
  285.     If c = 31 Then MakeCompliment = "extraordinary"
  286.     If c = 32 Then MakeCompliment = "marvelous"
  287.     If c = 33 Then MakeCompliment = "amazing"
  288.     If c = 34 Then MakeCompliment = "astonishing"
  289.     If c = 35 Then MakeCompliment = "astounding"
  290.     If c => 36 Then MakeCompliment = "spectacular"
  291.     c = Int(Rnd * 6)
  292.     If c = 0 Then MakeCompliment = "I think you are " & MakeCompliment
  293.     If c = 1 Then MakeCompliment = "I think you are very " & MakeCompliment
  294.     If c = 2 Then MakeCompliment = "You are " & MakeCompliment
  295.     If c = 3 Then MakeCompliment = "You are very " & MakeCompliment
  296.     If c = 4 Then MakeCompliment = "I know you are " & MakeCompliment
  297.     If c => 5 Then MakeCompliment = "I know you are very " & MakeCompliment
  298.     MakeCompliment = MakeCompliment + vbCrLf
  299. End Function
  300.  
  301. 'If the user clicks on the About/Options button for this plugin
  302. 'this sub will be called. There are no extra settings for this brain,
  303. 'so we'll display an information box
  304. Sub AboutOptions()
  305.     Set HalBrain = CreateObject("UltraHalAsst.Brain")
  306.     HalBrain.MsgAlert "This is the Ultra Hal Assistant 2.0 Assistant only brain.  This brain is not able to chat.  However it can remember appointments, addresses, phone numbers, email addresses, open programs, and be a calculator.  This brain has no additional options."
  307. End Sub
  308.  
  309. 'When the user select's "Teach by Keyword and Priority" from the menu
  310. 'the main program will run this function. If the function returns
  311. '"True" then the program will use it's built in editor to edit
  312. 'the brain. If it returns false, the main program will assume the
  313. 'script will provide it's own editor and the main program editor
  314. 'will not be shown
  315. Function LearnKeywords(UsersName)
  316.     LearnKeywords = True
  317. End Function
  318.  
  319. Function YesNo(ByVal UserText)
  320.     Set HalBrain = CreateObject("UltraHalAsst.Brain")
  321.     UserText = Trim(HalBrain.ExtractKeywords(UserText))
  322.     If Len(UserText) < 12 Then
  323.         UserText = " " & UserText & " "
  324.         YesRes = False
  325.         NoRes = False
  326.         If InStr(1, UserText, " yes ", vbTextCompare) > 0 Then YesRes = True
  327.         If InStr(1, UserText, " correct ", vbTextCompare) > 0 Then YesRes = True
  328.         If InStr(1, UserText, " affirmative ", vbTextCompare) > 0 Then YesRes = True
  329.         If InStr(1, UserText, " yeah ", vbTextCompare) > 0 Then YesRes = True
  330.         If InStr(1, UserText, " yep ", vbTextCompare) > 0 Then YesRes = True
  331.         If InStr(1, UserText, " exactly ", vbTextCompare) > 0 Then YesRes = True
  332.         If InStr(1, UserText, " precisely ", vbTextCompare) > 0 Then YesRes = True
  333.         If InStr(1, UserText, " and how ", vbTextCompare) > 0 Then YesRes = True
  334.         If InStr(1, UserText, " yea ", vbTextCompare) > 0 Then YesRes = True
  335.         If InStr(1, UserText, " uh-huh ", vbTextCompare) > 0 Then YesRes = True
  336.         If InStr(1, UserText, " you bet ", vbTextCompare) > 0 Then YesRes = True
  337.         If InStr(1, UserText, " no ", vbTextCompare) > 0 Then NoRes = True
  338.         If InStr(1, UserText, " nope ", vbTextCompare) > 0 Then NoRes = True
  339.         If InStr(1, UserText, " nix ", vbTextCompare) > 0 Then NoRes = True
  340.         If InStr(1, UserText, " nay ", vbTextCompare) > 0 Then NoRes = True
  341.         If InStr(1, UserText, " uh-uh ", vbTextCompare) > 0 Then NoRes = True
  342.         If InStr(1, UserText, " not so ", vbTextCompare) > 0 Then NoRes = True
  343.         If YesRes = True And NoRes = False Then
  344.             Choice = Int(Rnd * 7)
  345.             If Choice = 0 Then YesNo = "Really?"
  346.             If Choice = 1 Then YesNo = "How interesting."
  347.             If Choice = 2 Then YesNo = "Cool."
  348.             If Choice = 3 Then YesNo = "Are you sure?"
  349.             If Choice = 4 Then YesNo = "Alright."
  350.             If Choice = 5 Then YesNo = "You seem really positive."
  351.             If Choice => 6 Then YesNo = "Interesting."
  352.         ElseIf NoRes = True And YesRes = False Then
  353.             Choice = Int(Rnd * 7)
  354.             If Choice = 0 Then YesNo = "Really?"
  355.             If Choice = 1 Then YesNo = "How interesting."
  356.             If Choice = 2 Then YesNo = "Why Not?"
  357.             If Choice = 3 Then YesNo = "Are you sure?"
  358.             If Choice = 4 Then YesNo = "Ok."
  359.             If Choice = 5 Then YesNo = "You seem negative."
  360.             If Choice => 6 Then YesNo = "I disagree."
  361.         ElseIf NoRes = True And YesRes = True Then
  362.             YesNo = "Yes or No? Which is it?"
  363.         End If
  364.     End If
  365. End Function
  366.  
  367. Sub LearnQA(Question, Answer, UserName)
  368.     Set HalBrain = CreateObject("UltraHalAsst.Brain")
  369.     AnswerSent = "@" & Trim(Answer)
  370.     QuestionSent = " " & Trim(HalBrain.ExtractKeywords(Question))
  371.     If HalBrain.CountInstances(" ", QuestionSent) > 2 And Len(AnswerSent) > 8 And Len(QuestionSent) > 8 And InStr(1, AnswerSent, " ", vbTextCompare) > 0 Then
  372.        HalBrain.AppendFile Trim(UserName) & "usersent.brn", AnswerSent & vbCrLf & QuestionSent
  373.     End If
  374. End Sub
  375.  
  376. Sub StoreKeyword(Keyword, Response, UserName)
  377.      Set HalBrain = CreateObject("UltraHalAsst.Brain")
  378.     HalBrain.AppendFile Trim(UserName) & "user.brn", """" & Keyword & ""","""","""",""" & Response & """,""" & Response2 & """,""" & Response3 & """,1,#FALSE#,#FALSE#,"""""
  379. End Sub
  380.  
  381. Sub Script_Load()
  382. End Sub
  383.  
  384. Sub Script_Unload()
  385. End Sub
  386.  
  387. Sub LearnStoreKeyword(Keyword, Response, UserName)
  388.     Set HalBrain = CreateObject("UltraHalAsst.Brain") 
  389.     If Len(Keyword) > 3 and Len(Response) > 3 Then
  390.          HalBrain.AppendFile Trim(UserName) & "user.brn", """" & Keyword & ""","""","""",""" & Response & """,""" & Response2 & """,""" & Response3 & """,1,#FALSE#,#FALSE#,"""""
  391.     End If
  392. End Sub
  393.